home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Almathera Ten Pack 3: CDPD 3
/
Almathera Ten on Ten - Disc 3: CDPD3.iso
/
scope
/
026-050
/
scopedisk45
/
dlabel
/
dlabel.c
< prev
next >
Wrap
C/C++ Source or Header
|
1995-03-18
|
7KB
|
343 lines
/***************************************************************************
*
* DLabel.c v2.0 last edited 14-Apr-87
*
* by KL Colclasure
*
***************************************************************************/
#include <stdio.h>
#include <functions.h>
#include <intuition/intuition.h>
/*---- Defines ------------------------------------------------------------*/
#define VOLGAD_ID 1
#define TX1GAD_ID 2
#define TX2GAD_ID 3
#define TX3GAD_ID 4
#define TX4GAD_ID 5
#define ITXGAD_ID 6
#define CLRGAD_ID 7
#define PRTGAD_ID 8
/*---- Data for label -----------------------------------------------------*/
char vlin1[] =
{
0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,NULL
};
char vlin2[] =
{
0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,
0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,0xc4,NULL
};
/*---- Library names & pointers for openLibs() ----------------------------*/
int openLibs();
void closeLibs();
char *libs[] =
{
"intuition.library",
"graphics.library",
NULL
};
struct IntuitionBase *IntuitionBase = NULL;
struct GfxBase *GfxBase = NULL;
unsigned long endBases = NULL;
/*---- Gadget stuff -------------------------------------------------------*/
char volBuf[23] = "DLabel2:"; /* String buffers. */
char tx1Buf[26] = "Disk Label Printer";
char tx2Buf[26] = "Version 2.0";
char tx3Buf[26] = "";
char tx4Buf[26] = "by KL Colclasure";
char itxBuf[26] = "AmigaDOS MEMOREX DS/4D";
short xyPairs4[] = {0,0,57,0,57,12,0,12,0,0};
struct Border boolBdr =
{
-1,-1,1,0,JAM1,
5,&xyPairs4,NULL
};
struct IntuiText prtText =
{
1,0,JAM1,9,2,NULL,
"Print",NULL
};
struct Gadget prtGad =
{
NULL,240,70,56,11,
GADGHCOMP,
RELVERIFY,
BOOLGADGET,
&boolBdr,NULL,&prtText,0,
NULL,PRTGAD_ID,NULL
};
struct IntuiText clrText =
{
1,0,JAM1,9,2,NULL,
"Clear",NULL
};
struct Gadget clrGad =
{
&prtGad,240,54,56,11,
GADGHCOMP,
RELVERIFY,
BOOLGADGET,
&boolBdr,NULL,&clrText,0,
NULL,CLRGAD_ID,NULL
};
struct StringInfo itxStrInfo = /* Info line string gadget. */
{
&itxBuf,NULL,0,26,0,
0,0,0,0,0,NULL,0,NULL
};
struct Gadget itxGad =
{
&clrGad,20,72,208,8,
GADGHCOMP,
NULL,
STRGADGET,
NULL,NULL,NULL,0,
&itxStrInfo,ITXGAD_ID,NULL
};
struct StringInfo tx4StrInfo = /* Text line 4 string gadget. */
{
&tx4Buf,NULL,0,26,0,
0,0,0,0,0,NULL,0,NULL
};
struct Gadget tx4Gad =
{
&itxGad,20,56,208,8,
GADGHCOMP,
RELVERIFY|STRINGCENTER,
STRGADGET,
NULL,NULL,NULL,0,
&tx4StrInfo,TX4GAD_ID,NULL
};
struct StringInfo tx3StrInfo = /* Text line 3 string gadget. */
{
&tx3Buf,NULL,0,26,0,
0,0,0,0,0,NULL,0,NULL
};
struct Gadget tx3Gad =
{
&tx4Gad,20,48,208,8,
GADGHCOMP,
RELVERIFY|STRINGCENTER,
STRGADGET,
NULL,NULL,NULL,0,
&tx3StrInfo,TX3GAD_ID,NULL
};
struct StringInfo tx2StrInfo = /* Text line 2 string gadget. */
{
&tx2Buf,NULL,0,26,0,
0,0,0,0,0,NULL,0,NULL
};
struct Gadget tx2Gad =
{
&tx3Gad,20,40,208,8,
GADGHCOMP,
RELVERIFY|STRINGCENTER,
STRGADGET,
NULL,NULL,NULL,0,
&tx2StrInfo,TX2GAD_ID,NULL
};
struct StringInfo tx1StrInfo = /* Text line 1 string gadget. */
{
&tx1Buf,NULL,0,26,0,
0,0,0,0,0,NULL,0,NULL
};
struct Gadget tx1Gad =
{
&tx2Gad,20,32,208,8,
GADGHCOMP,
RELVERIFY|STRINGCENTER,
STRGADGET,
NULL,NULL,NULL,0,
&tx1StrInfo,TX1GAD_ID,NULL
};
struct StringInfo volStrInfo = /* Volume string gadget. */
{
&volBuf,NULL,0,23,0,
0,0,0,0,0,NULL,0,NULL
};
short xyPairs1[] = {0,0,193,0,193,12,0,12,0,0};
short xyPairs2[] = {193,0,217,0,217,6,193,6,193,12,217,12,217,6};
short xyPairs3[] = {0,12,0,56,217,56,217,68,0,68,0,56,217,56,217,12};
struct Border nx2Bdr =
{
-8,-3,1,0,JAM1,
8,&xyPairs3,NULL
};
struct Border nx1Bdr =
{
-8,-3,1,0,JAM1,
7,&xyPairs2,&nx2Bdr
};
struct Border labBdr =
{
-8,-3,1,0,JAM1,
5,&xyPairs1,&nx1Bdr
};
struct Gadget volGad =
{
&tx1Gad,20,16,184,8,
GADGHCOMP,
RELVERIFY,
STRGADGET,
&labBdr,NULL,NULL,0,
&volStrInfo,VOLGAD_ID,NULL
};
/*---- Window stuff -------------------------------------------------------*/
struct NewWindow nw =
{
165,55,308,86,2,1,
GADGETUP|CLOSEWINDOW,
WINDOWDRAG|WINDOWDEPTH|WINDOWCLOSE|ACTIVATE,
&volGad,NULL,
"DLabel v2.0",
NULL,NULL,0,0,0,0,WBENCHSCREEN
};
struct Window *w = NULL;
/*---- Dummy startup functions --------------------------------------------*/
void _wb_parse() {}
void _cli_parse() {}
/*---- Driver -------------------------------------------------------------*/
main()
{
int finished = 0;
struct IntuiMessage *msg;
if (!(openLibs(libs,&IntuitionBase))) wrapup(1);
if (!(w = OpenWindow(&nw))) wrapup(2);
while (!finished)
{
Wait(1L << w->UserPort->mp_SigBit);
msg = GetMsg(w->UserPort);
switch (msg->Class)
{
case GADGETUP:
doGadget(msg->IAddress);
break;
case CLOSEWINDOW:
finished = -1;
break;
default:
finished = -1;
}
ReplyMsg(msg);
}
wrapup(0);
}
doGadget(gad)
struct Gadget *gad;
{
switch (gad->GadgetID)
{
case VOLGAD_ID:
case TX1GAD_ID:
case TX2GAD_ID:
case TX3GAD_ID:
case TX4GAD_ID:
ActivateGadget(gad->NextGadget,w,NULL);
break;
case CLRGAD_ID:
*volStrInfo.Buffer = 0; volStrInfo.BufferPos = 0;
*tx1StrInfo.Buffer = 0; tx1StrInfo.BufferPos = 0;
*tx2StrInfo.Buffer = 0; tx2StrInfo.BufferPos = 0;
*tx3StrInfo.Buffer = 0; tx3StrInfo.BufferPos = 0;
*tx4StrInfo.Buffer = 0; tx4StrInfo.BufferPos = 0;
*itxStrInfo.Buffer = 0; itxStrInfo.BufferPos = 0;
RefreshGList(&volGad,w,NULL,6L);
ActivateGadget(&volGad,w,NULL);
break;
case PRTGAD_ID:
printLabel();
break;
default:
printf("Bad gadget id!\n");
}
}
printLabel()
{
int i1,i2;
FILE *fp;
if (!(fp = fopen("par:","w")))
{
perror("DLabel");
}
else
{
fprintf(fp,"%cU1",0x1b);
fprintf(fp,"%c%24s%c%c%c%c\n",0xc9,&vlin1,0xc2,0xc4,0xc4,0xb7);
fprintf(fp,"%c %-22s %c%c%c%c\n",0xba,&volBuf,0xc7,0xc4,0xc4,0xb5);
fprintf(fp,"%c%24s%c%c%c%c\n",0xc7,&vlin1,0xca,0xc4,0xc4,0xb5);
fprintf(fp,"%c%28c\n",0xba,0xba);
i2 = (27 - strlen(&tx1Buf)) / 2;
i1 = 27 - i2;
fprintf(fp,"%c%*s %*c\n",0xba,i1,&tx1Buf,i2,0xba);
i2 = (27 - strlen(&tx2Buf)) / 2;
i1 = 27 - i2;
fprintf(fp,"%c%*s %*c\n",0xba,i1,&tx2Buf,i2,0xba);
i2 = (27 - strlen(&tx3Buf)) / 2;
i1 = 27 - i2;
fprintf(fp,"%c%*s %*c\n",0xba,i1,&tx3Buf,i2,0xba);
i2 = (27 - strlen(&tx4Buf)) / 2;
i1 = 27 - i2;
fprintf(fp,"%c%*s %*c\n",0xba,i1,&tx4Buf,i2,0xba);
fprintf(fp,"%c%28c\n",0xba,0xba);
fprintf(fp,"%c%27s%c\n",0xc7,&vlin2,0xb5);
fprintf(fp,"%c %-25s %c\n",0xba,&itxBuf,0xba);
fprintf(fp,"%c%27s%c\n",0xc0,&vlin2,0xbe);
fclose(fp);
}
}
wrapup(stat)
int stat;
{
if (w) CloseWindow(w);
closeLibs(&IntuitionBase);
exit(stat);
}